/*
#**************************************************************************
#  openSIS is a student information system for public and non-public 
#  schools from Open Solutions for Education, Inc. web: www.os4ed.com
#
#  openSIS is  web-based, open source, and comes packed with features that 
#  include student demographic info, scheduling, grade book, attendance, 
#  report cards, eligibility, transcripts, parent portal, 
#  student portal and more.   
#
#  Visit the openSIS web site at http://www.opensis.com to learn more.
#  If you have question regarding this system or the license, please send 
#  an email to info@os4ed.com.
#
#  This program is released under the terms of the GNU General Public License  
#  as  published by the Free Software Foundation, version 2 of the License. 
#  See license.txt.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
#**************************************************************************** 
*/
using System;
using System.Data;
using System.Collections;
using System.Collections.Specialized;

namespace calendar.Data
{
public class RecordDataProviderBase
{
    protected DataCommand Select;
    protected DataCommand Insert;
    protected DataCommand Update;
    protected DataCommand Delete;
    protected bool IsInsertMode;
    protected bool CmdExecution = true;
    protected bool IsParametersPassed = true;
    protected Hashtable CommonParameters=new Hashtable();

    protected virtual void PrepareSelect()
    {
    }

    protected DataSet ExecuteSelect()
    {
    PrepareSelect();
    return Select.Execute(0, 1);
    }

    protected virtual void PrepareInsert()
    {
    }

    protected object ExecuteInsert()
    {
    PrepareInsert();
    if(CmdExecution)
        return Insert.ExecuteNonQuery();
    else
        return 0;
    }

    protected virtual void PrepareUpdate()
    {
    }

    protected object ExecuteUpdate()
    {
    PrepareUpdate();
    if(CmdExecution && IsParametersPassed)
        return Update.ExecuteNonQuery();
    else
        return 0;
    }

    protected virtual void PrepareDelete()
    {
    }

    protected object ExecuteDelete()
    {
    PrepareDelete();
    if(CmdExecution && IsParametersPassed)
        return Delete.ExecuteNonQuery();
    else
        return 0;
    }
}
}
//End RecordDataProvider Class

